home *** CD-ROM | disk | FTP | other *** search
/ F1 Licenseware / F1 Licenseware - Volume 1.iso / disks / 049b.dms / 049b.adf / MORE_SOURCE_CODE / AJC-DEMOLITION.AMOS / AJC-DEMOLITION.amosSourceCode next >
AMOS Source Code  |  1992-02-26  |  4KB  |  179 lines

  1. '
  2. '  "Demolition"  
  3. '  
  4. '  A nice little game for all to share by Andrew Campbell
  5. '  
  6. '  Originally included in the game BRAINSHAVE as an extra. 
  7. '  Get in touch with the Assassin's for more details!
  8. '    
  9. '  Cheers - AJC
  10. '
  11.  
  12. Global X,Y,X1,Y1,C,LVL,COUNT,SHOT,SFX
  13.  
  14. Default Palette 0,$FFF,$F00,$F0,$F,$F0F,$FF0,$0,$0,$777,$666,$555,$444,$333,$222,$0
  15. Screen Open 0,320,200,2,Lowres : Curs Off : Flash Off : Cls 0
  16. SFX=1
  17. '
  18. MAKEUP
  19. '
  20. Auto View Off 
  21. Screen Open 2,320,200,8,Lowres : Curs Off : Flash Off : Cls 0 : Hide On 
  22. Screen Open 0,320,400,8,Lowres : Curs Off : Flash Off : Cls 0 : Hide On 
  23. Colour 17,$FFF : Screen Display 0,,,,200
  24. '
  25. Dual Playfield 0,2
  26. '
  27. LVL=1
  28. '
  29.  Screen 2
  30.  For I=1 To 250 : Circle Rnd(319),Rnd(199),Rnd(9)+1 : Next I
  31.  Def Scroll 2,0,0 To 320,200,0,1
  32.  Screen 0
  33.  Def Scroll 1,0,0 To 320,400,0,-10
  34.  Auto View On : View 
  35.  X=X Hard(150) : Y=Y Hard(7)
  36.  Sprite 0,X,Y,1 : Wait Vbl 
  37. '
  38. Auto View On : View 
  39. RESTART:
  40.  
  41.  SHOT=0
  42.  COUNT=0
  43.  MAKEWALL
  44.  Timer=0
  45.  
  46. MAIN:
  47.  Screen 2 : Scroll 2 : Screen Copy 2,0,198,320,199 To 2,0,0
  48.  
  49.  Screen 0
  50.  If Jleft(1) : X=X-3 : LIMITS : Sprite 0,X,Y,1 : End If 
  51. If Jright(1) : X=X+3 : LIMITS : Sprite 0,X,Y,1 : End If 
  52.   If Fire(1) and Chanmv(4)=0 : If SFX=1 : Sam Play %1110,1 : End If : SHER : End If 
  53.  
  54.  If Timer>100-(LVL*10)
  55.   Scroll 1 : CHECK_TOP : Timer=0
  56.   If SFX=1 : Sam Play %1,3 : End If 
  57.  End If 
  58.  
  59.  If Chanmv(4)=-1
  60.   X1=X Screen(X Sprite(4)) : Y1=Y Screen(Y Sprite(4))
  61.   C=Point(X1,Y1)
  62.    If C>0 and C<8
  63.     Sprite Off(4)
  64.     WIPE_BLOCK
  65.    End If 
  66.  End If 
  67.  
  68.  If SHOT=COUNT : If SFX=1 : Sam Play %1111,2 : End If : Inc LVL : Goto RESTART : End If 
  69.  
  70. Goto MAIN
  71. '
  72. Procedure MAKEUP
  73.  
  74. Auto View Off 
  75. Screen Open 1,320,50,16,Lowres : Curs Off : Flash Off : Cls 0 : Hide On 
  76.  
  77. '------- Make Control Bob
  78.  
  79. Ink 1 : Polygon 0,0 To 14,0 To 7,7
  80. Get Bob 1,1,0,0 To 16,16
  81. Hot Spot 1,7,7
  82. Cls 0
  83.  
  84. '------ Make Bullet Bob  
  85.  
  86. Ink 1 : Plot 0,0,1
  87. Get Bob 1,2,0,0 To 16,1
  88. Cls 0
  89.  
  90. Screen Close 1
  91.  
  92. End Proc
  93. Procedure LIMITS
  94.  If X>X Hard(319-7) : X=X Hard(319-7) : End If 
  95.  If X<X Hard(7) : X=X Hard(7) : End If 
  96. End Proc
  97. Procedure SHER
  98.  Sprite 4,X,Y,2
  99.  Amal 4,"M 0,200,20"
  100.  Amal On 4
  101. End Proc
  102. Procedure MAKEWALL
  103.  
  104.  Screen 0
  105.  
  106.   For I=0 To LVL*2
  107.    For J=0 To 19
  108.     Inc COUNT
  109.     Ink Rnd(4)+2
  110.     Bar J*16,200+(I*10) To(J*16)+16,200+(I*10)+10
  111.     Ink 7 : Box J*16+1,200+(I*10)+1 To(J*16)+16-1,200+(I*10)+10-1
  112.    Next J
  113.   Next I
  114.  
  115. End Proc
  116. Procedure WIPE_BLOCK
  117.  
  118.   Gosub WIPE
  119.  
  120.   LEFT=1 : RIGHT=1
  121.  
  122.   LX=X2*16 : LY=Y2*10 : RX=X2*16 : RY=Y2*10
  123.   LX=LX-8 : LY=LY+5 : RX=RX+24 : RY=RY+5
  124.  
  125.   If Point(LX,LY)=0 : LEFT=1 : End If 
  126.   If Point(RX,RY)=0 : RIGHT=1 : End If 
  127.   LX=LX+16 : RX=RX-16
  128.  
  129.   Repeat 
  130.  
  131.   If LEFT=1 : If Point(LX-16,LY)<8 and Point(LX-16,LY)>0 : LEFT=0 : End If : End If 
  132.  If RIGHT=1 : If Point(RX+16,RY)<8 and Point(RX+16,RY)>0 : RIGHT=0 : End If : End If 
  133.  
  134.  If LEFT=1
  135.    LX=LX-16 : LY=LY+10
  136.    C=Point(LX,LY)
  137.    If C=0 or C>7 or C=-1 : LEFT=0 : Else Gosub WIPE2 : End If 
  138.  End If 
  139.  
  140.  If RIGHT=1
  141.    RX=RX+16 : RY=RY+10
  142.    C=Point(RX,RY)
  143.    If C=0 or C>7 or C=-1 : RIGHT=0 : Else Gosub WIPE3 : End If 
  144.  End If 
  145.  
  146.   Until LEFT=0 and RIGHT=0
  147.  
  148.  Pop Proc
  149.  
  150.  
  151. WIPE:
  152.   X2=X1/16 : Y2=Y1/10 : Ink 0 : Bar X2*16,Y2*10 To X2*16+15,Y2*10+10 : Inc SHOT
  153.   If SFX=1 : Sam Play %1000,4 : End If 
  154. Return 
  155.  
  156. WIPE2:
  157.   X2=LX/16 : Y2=LY/10 : Ink 0 : Bar X2*16,Y2*10 To X2*16+15,Y2*10+10 : Inc SHOT
  158.   If SFX=1 : Sam Play %100,4 : End If 
  159. Return 
  160.  
  161. WIPE3:
  162.   X2=RX/16 : Y2=RY/10 : Ink 0 : Bar X2*16,Y2*10 To X2*16+15,Y2*10+10 : Inc SHOT
  163.   If SFX=1 : Sam Play %10,4 : End If 
  164. Return 
  165.  
  166. End Proc
  167. Procedure CHECK_TOP
  168.  
  169.  For I=2 To 319 Step 16
  170.   C=Point(I,5)
  171.   If C>0 and C<8
  172.    Paper 0 : Pen 1
  173.    Locate 0,12 : Centre "G A M E   O V E R"
  174.    Wait 150
  175.    Edit 
  176.   End If 
  177.  Next I
  178.  
  179. End Proc